remove関数は、ファイルやフォルダ(ディレクトリ)を削除します。この関数で削除するには、他のプロセスでファイルやフォルダを使用していないことや、削除する為の権限を持っていることなどがあります。また、フォルダは空でないと削除できません。
#include <stdio.h>
int remove(const char *pathname);
*pathnamesは削除するファイルやフォルダのパス名を指定します。
戻り値として、削除できた場合は0を、エラーの場合は-1を返します。
プログラム 例
#include <stdio.h> int main(int argc, char **argv) { char ans; int return_code = 0; if (argc == 2) { printf('%sを削除しますか?(y/n)==> ', *(argv + 1)); scanf('%c', &ans); if (ans == 'Y' || ans == 'y') { if (remove(*(argv + 1)) == 0) { printf('削除しました\n'); } else { printf('削除できませんでした\n'); return_code = 1; } } else { printf('キャンセルします\n'); } } else { printf('実行時引数の数が不当です\n'); return_code = 2; } return return_code; }
例の実行結果
$ ls -l DIR1 合計 4 -rw-r--r-- 1 user users 20 2008-07-04 09:03 temp_1.txt $ $ ./remove.exe DIR1 DIR1を削除しますか?(y/n)==> y 削除できませんでした $ $ ./remove.exe DIR1/temp_1.txt DIR1/temp_1.txtを削除しますか?(y/n)==> y 削除しました $ $ ls -l DIR1 合計 0 $ $ ./remove.exe DIR1 DIR1を削除しますか?(y/n)==> y 削除しました $ $ ls -l DIR1 ls: cannot access DIR1: そのようなファイルやディレクトリはありません $